3.3 Fehlersuche im Code
 
Das mühsamste Thema in der Programmierung ist sicherlich das Suchen von Fehlern. Gemeint sind hier keine Tippfehler oder falsche Deklarationen, sondern logische Fehler: Die Schleife beginnt bei 0 und nicht bei 1, zum Dateinamen muss der Pfad und ein »\« hinzugefügt werden, die Verzweigung arbeitet mit »>« statt mit »>=« und so weiter. Aber es gibt einige Techniken, mit denen solche Fehler gefunden werden können.
3.3.1 Ergebnisse und Zwischenergebnisse
 
Eine Möglichkeit für Zwischenergebnisse wurde bereits gezeigt: Schreiben Sie in Ihren Code eine Meldungsbox, die ein Zwischenergebnis oder mehrere auswirft. Da das Meldungsfenster ausgeschaltet werden muss, bleibt es so lange auf dem Bildschirm stehen, bis Sie sich von der Richtigkeit der Ergebnisse überzeugt haben.
3.3.2 Haltepunkte
 
Klicken Sie mit der Maus in die graue Leiste vor dem Code, dann wird die Zeile braun markiert. Oder Sie drücken die Funktionstaste (F9). Wird nun das Programm gestartet, dann läuft es bis zu dieser Stelle. Alle Haltepunkte können in einem Fenster angezeigt werden. Es wird über Debuggen . Fenster . Haltepunkte geöffnet.
Abbildung 3.10
Ein Haltepunkt
Nun können die Variableninhalte eingesehen werden. Entweder Sie nehmen den Mauszeiger und setzen ihn auf eine Variable - dann erscheint ihr Wert in einem Quick-Info - oder Sie werfen einen Blick in das Lokalfenster.
3.3.3 Das Lokalfenster
 
Dort werden alle verwendeten Variablen angezeigt. Darüber hinaus findet sich in dieser Liste das Steuerelement der Userform und das auslösende Objekt.
Abbildung 3.11
Das Lokalfenster
3.3.4 Das Überwachen-Fenster
 
Eine weitere Möglichkeit steht Ihnen über das Überwachen-Fenster zur Verfügung: Es wird geöffnet, indem Sie eine Variable markieren und aus dem Kontextmenü den entsprechenden Befehl wählen oder den Menüpunkt Debuggen . Schnellüberwachung. So können die Variablen in der Reihenfolge angezeigt werden, wie Sie sie brauchen. Andererseits können dort Ausdrücke verwendet werden, die so nicht im Code stehen.
Abbildung 3.12
Die Schnellüberwachung
Wenn beispielsweise mit »xlZelle« auf eine bestimmte Zelle in einer Excel-Tabelle zugegriffen wird, dann könnte man im Überwachen-Fenster sich »xlZelle.Value« (der Inhalt) oder »xlZelle.Address« (die Position) anzeigen lassen.
3.3.5 Das Direktfenster
 
Ausdrücke können ebenso im Direktfenster eingegeben werden. Sie gelangen über Debuggen . Fenster . Direkt dorthin. Der Ausdruck wird in der Form
? intZähler
eingegeben. Nach Betätigen der Enter-Taste erscheint der Wert eine Zeile tiefer.
3.3.6 Einzelschrittmodus
 
Damit das Lokalfenster nicht zum Bildschirm einer schnell ablaufenden Prozedur wird, sondern wirklich zu Testzwecken dient, sollte der Code in Einzelschritten ausgeführt werden. Dieser Modus kann über das Menü Debuggen . Einzelschritt oder mit der Funktionstaste (F11) aktiviert werden. VB.NET führt das Programm Zeile für Zeile aus - genauer: Befehl für Befehl. Stehen mehrere Befehle, getrennt durch einen Doppelpunkt, in einer Eingabezeile, so wird jeder einzelne Befehl getrennt ausgeführt, bei einem Befehl, der sich über mehrere Zeilen erstreckt, dagegen der ganze Befehl. In welcher Zeile sich die Bearbeitung gerade befindet, wird durch einen gelben Balken sichtbar gemacht. Aus der Einzelschrittbearbeitung kann jederzeit das Programm gestartet werden: über den bekannten Weg (F5) oder das Menü Debuggen . Weiter oder das entsprechende Symbol.
Mit (Umschalt) + (F11)(Debuggen . Bis Rückschritt) wird die Prozedur bis zum Ende ausgeführt. Der Debugger springt dann in die Prozedur, von der aus das Programm aufgerufen wurde (falls es eine solche gibt).
Leider fehlt im Menü Debuggen ein Punkt »Ausführen bis Cursor«. VB.NET stellt auch keine Tastenkombination dafür zur Verfügung. Allerdings existiert ein Symbol. Öffnen Sie das Kontextmenü der Symbolleisten (oder Ansicht . Symbolleisten . Anpassen), wählen aus dem Registerblatt Befehle die Kategorie Debuggen. Dort befindet sich das Icon für »Ausführen bis Cursor«, das Sie in eine vorhandene Symbolleiste, beispielsweise in die Debug-Leiste ziehen können.
Abbildung 3.13
Ein wichtiges Symbol
|